var accounting = require('accounting')
module.exports = {
  // 判断对象是否为空
  isEmptyObject: function (e) {
    var t
    for (t in e) {
      return !1
    }
    return !0
  },
  accoun:{
    toFixed: function (val) {
      return accounting.toFixed(val,2)
    }
  },
  localItem: {
    get: function (key) {
      key = 'carutoo_' + key
      if (this.isLSsuport()) {
        try {
          return window.localStorage.getItem(key) || ''
        } catch (e) {
          return ''
        }
      }
      return this.getCookie(key)
    },
    set: function (key, value) {
      key = 'carutoo_' + key
      if (this.isLSsuport()) {
        try {
          window.localStorage.setItem(key, value)
        } catch (e) {
          return ''
        }
      } else {
        return this.setCookie(key, value)
      }
    },
    isLSsuport: function () {
      try {
        return 'localStorage' in window && window['localStorage'] !== null
      } catch (e) {
        return false
      }
    },
    setCookie: function (key, value) {
      var exp = new Date()
      exp.setTime(exp.getTime() + 1000 * 60 * 60 * 24 * 1)
      document.cookie = key + '=' + escape(value) + ';expires=' + exp.toGMTString()
    },
    getCookie: function (key) {
      var arr = []
      var reg = new RegExp('(^| )' + key + '=([^;]*)(;|$)')
      console.log(reg)
      if (arr === document.cookie.match(reg)) {
        return unescape(arr[2])
      } else {
        return null
      }
    }
  },
  tool: {
    compress: function (img) {
      var initSize = img.src.length
      var width = img.width
      var height = img.height

      // 如果图片大于四百万像素，计算压缩比并将大小压至400万以下
      var ratio
      var canvas = document.createElement('canvas')
      var ctx = canvas.getContext('2d')
      if ((ratio = width * height / 4000000) > 1) {
        ratio = Math.sqrt(ratio)
        width /= ratio
        height /= ratio
      } else {
        ratio = 1
      }

      canvas.width = width
      canvas.height = height

      //        铺底色
      // ctx.fillStyle = "#fff";
      // ctx.fillRect(0, 0, canvas.width, canvas.height);

      var tCanvas = document.createElement('canvas')
      var tctx = tCanvas.getContext('2d')
      // 如果图片像素大于100万则使用瓦片绘制
      var count
      if ((count = width * height / 1000000) > 1) {
        count = ~~(Math.sqrt(count) + 1) // 计算要分成多少块瓦片

        //            计算每块瓦片的宽和高
        var nw = ~~(width / count)
        var nh = ~~(height / count)
        tCanvas.width = nw
        tCanvas.height = nh

        for (var i = 0; i < count; i++) {
          for (var j = 0; j < count; j++) {
            tctx.drawImage(img, i * nw * ratio, j * nh * ratio, nw * ratio, nh * ratio, 0, 0, nw, nh)

            ctx.drawImage(tCanvas, i * nw, j * nh, nw, nh)
          }
        }
      } else {
        ctx.drawImage(img, 0, 0, width, height)
      }

      // 进行最小压缩
      var ndata = canvas.toDataURL('image/jpeg', 0.5)

      console.log('压缩前：' + initSize)
      console.log('压缩后：' + ndata.length)
      console.log('压缩率：' + ~~(100 * (initSize - ndata.length) / initSize) + '%')

      return ndata
    }
  }
}
